From 7819a5aab9282996fc23b5db470624b0a20f1388 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 2 Mar 2019 21:03:38 -0500 Subject: [PATCH] Drop gtk_widget_send_focus_change Replace this with gtk_widget_set_has_focus + gtk_widget_event. --- gtk/gtktreeview.c | 3 ++- gtk/gtkwidget.c | 50 ------------------------------------------ gtk/gtkwidget.h | 3 --- gtk/gtkwidgetprivate.h | 1 + gtk/gtkwindow.c | 5 +++-- 5 files changed, 6 insertions(+), 56 deletions(-) diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 1a4ed0488a..29da6f8876 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -10151,7 +10151,8 @@ send_focus_change (GtkWidget *widget, fevent->focus_change.in = in; gdk_event_set_device (fevent, device); - gtk_widget_send_focus_change (widget, fevent); + gtk_widget_set_has_focus (widget, in); + gtk_widget_event (widget, fevent); g_object_unref (fevent); } diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index c5eb6d63cb..f9dafac747 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -11573,56 +11573,6 @@ gtk_widget_get_overflow (GtkWidget *widget) return priv->overflow; } -/** - * gtk_widget_send_focus_change: - * @widget: a #GtkWidget - * @event: a #GdkEvent of type GDK_FOCUS_CHANGE - * - * Sends the focus change @event to @widget - * - * This function is not meant to be used by applications. The only time it - * should be used is when it is necessary for a #GtkWidget to assign focus - * to a widget that is semantically owned by the first widget even though - * it’s not a direct child - for instance, a search entry in a floating - * window similar to the quick search in #GtkTreeView. - * - * An example of its usage is: - * - * |[ - * GdkEvent *fevent = gdk_event_new (GDK_FOCUS_CHANGE); - * - * fevent->focus_change.type = GDK_FOCUS_CHANGE; - * fevent->focus_change.in = TRUE; - * fevent->focus_change.surface = _gtk_widget_get_surface (widget); - * if (fevent->focus_change.surface != NULL) - * g_object_ref (fevent->focus_change.surface); - * - * gtk_widget_send_focus_change (widget, fevent); - * - * g_object_unref (event); - * ]| - * - * Returns: the return value from the event signal emission: %TRUE - * if the event was handled, and %FALSE otherwise - */ -gboolean -gtk_widget_send_focus_change (GtkWidget *widget, - GdkEvent *event) -{ - GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget); - - g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE); - g_return_val_if_fail (event != NULL && event->any.type == GDK_FOCUS_CHANGE, FALSE); - - priv->has_focus = event->focus_change.in; - - gtk_propagate_event (widget, event); - - g_object_notify_by_pspec (G_OBJECT (widget), widget_props[PROP_HAS_FOCUS]); - - return TRUE; -} - void gtk_widget_set_has_focus (GtkWidget *widget, gboolean has_focus) diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index f3012b07a4..d9dbfaf885 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -451,9 +451,6 @@ gboolean gtk_widget_mnemonic_activate (GtkWidget *widget, GDK_AVAILABLE_IN_ALL gboolean gtk_widget_event (GtkWidget *widget, const GdkEvent *event); -GDK_AVAILABLE_IN_ALL -gboolean gtk_widget_send_focus_change (GtkWidget *widget, - GdkEvent *event); GDK_AVAILABLE_IN_ALL gboolean gtk_widget_activate (GtkWidget *widget); diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h index ca30e9b0f3..231748d655 100644 --- a/gtk/gtkwidgetprivate.h +++ b/gtk/gtkwidgetprivate.h @@ -336,6 +336,7 @@ gboolean gtk_widget_run_controllers (GtkWidget const GdkEvent *event, GtkPropagationPhase phase); + /* inline getters */ static inline GtkWidget * diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 97a886009c..d2fd050ffc 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -7036,7 +7036,7 @@ gtk_window_real_activate_focus (GtkWindow *window) static void do_focus_change (GtkWidget *widget, - gboolean in) + gboolean in) { GdkSeat *seat; GList *devices, *d; @@ -7065,7 +7065,8 @@ do_focus_change (GtkWidget *widget, fevent->focus_change.in = in; gdk_event_set_device (fevent, dev); - gtk_widget_send_focus_change (widget, fevent); + gtk_widget_set_has_focus (widget, in); + gtk_widget_event (widget, fevent); g_object_unref (fevent); } -- 2.30.2